import Vue from 'vue'
import './plugins/axios'
import App from './App.vue'
import router from './router'
import store from './store'

import { getWxConfig,getBillLists } from "./plugins/api"
import { Toast } from "vant-green"
import 'vant-green/lib/index.css';
import VantGreen from 'vant-green';
Vue.use(VantGreen);
import axios from 'axios';

// 一分钟的超时时间
if(new Date().getTime() - localStorage.getItem('countdown') > 1000 * 60){
  localStorage.setItem('isAuthenticated',"false")
}

// 设置根据宽度判断字号
function autoScale(){
    var winW = document.documentElement.clientWidth;
    return Math.min(1,Math.min(winW / 750));
}

const isMobile = window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i); // 判断移动端类型
const isWeCom  = /wxwork/i.test(navigator.userAgent); // 判断是否为企业微信类
// 判断是否是手机端企业微信   
if (isWeCom && isMobile) { 
  // alert('您正在通过手机端企业微信打开页面')
  // 防止窗口被放大
  setTimeout(()=>{
    document.documentElement.style.cssText = 'font-size:' + (100 * autoScale()) + 'px';
    window.onresize = function(){
      document.documentElement.style.cssText = 'font-size:' + (100 * autoScale()) + 'px';
    }
  },30)
}
if (isWeCom && !isMobile) { //判断是否是PC端企业微信
  // alert('您正在通过PC端企业微信打开页面')
  setTimeout(()=>{
    document.documentElement.style.cssText = 'font-size:70px';
  },30)
}

document.title = "发票管理"
// alert('进入main.js执行一次')
window.verify // true需要验证
window.verify = true; 

if(!window.verify){
  setTimeout(()=>{
    document.documentElement.style.cssText = 'font-size:' + (100 * autoScale()) + 'px';
    window.onresize = function(){
      document.documentElement.style.cssText = 'font-size:' + (100 * autoScale()) + 'px';
    }
  },30)
}

// 微信api
import WechatPlugin from './plugins/wechat';
Vue.use(WechatPlugin);
Vue.config.productionTip = false

// 获取发票类型
getBillLists().then(res=>{
  // console.log(res.data);
  if(res.code == 200){
    // type  
    // 1- input 文本 
    // 2-picker date日期 
    // 3-picker time 时间 
    // 4-pick dateTime 年月日时分秒
    store.commit('setBillTypeLists',res.data)
  }
}).catch(err=>{
  console.log(err);
})

new Vue({
  router,
  store,
  axios,
  mounted(){
    //if(localStorage.getItem('isAuthenticated') == 'false'){
      let clientId = Math.floor(Math.random() * 10000000)
      const formData = new FormData();
      formData.append('url', "http://fna.sunmeihotel.com/"); 
      formData.append('clientId', clientId);
      getWxConfig(formData).then(res=>{
        if(res.code == 200){
          this.$wechat.config({
            beta     : true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
            debug    : false, // 调试模式，开启后会打印调试信息
            appId    : res.data.appId, // 必填，企业微信的corpID，必须是本企业的corpID，不允许跨企业使用
            timestamp: res.data.timestamp,
            nonceStr : res.data.nonceStr,
            signature: res.data.signature,
            jsApiList: [// 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
                'checkJsApi', // 判断当前客户端版本是否支持指定JS接口
                'getCurExternalContact', // 获取当前外部联系人userid
                'chooseImage', //拍照或者选择图片
                'uploadImage',//图片上传
                'downloadImage'
            ]
          });
          this.$wechat.ready(()=> {

            if(localStorage.getItem('isAuthenticated') == 'false'){

              if(window.verify){
                localStorage.setItem('isAuthenticated',"true")
                // 设置一个超时时间
                localStorage.setItem('countdown',new Date().getTime())
                // 此处appid需要替换为token
                var redirectUri = encodeURIComponent('http://fna.sunmeihotel.com/'); // 替换为你的回调链接地址，并进行URL编码  
                var state = Math.random().toString(36).substring(7); // 生成一个随机的state值  
                var authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${res.data.appId}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_base&agentid=1000215&state=${state}#wechat_redirect`;  
                // 执行跳转 
                setTimeout(()=>{
                  window.location.href = authUrl; 
                },50)
              }else{
                localStorage.setItem('isAuthenticated',"true")
                localStorage.setItem('countdown',new Date().getTime())
                router.push({'path':'init'})
              }
            }else{
              // 如果已经登录访问了登录页面 则跳转到init
              if(window.location.href == window.location.origin+'/#/' || window.location.href == window.location.origin){
                router.push({path:'/init'})
              }
            }
          })
          this.$wechat.error(function(res) {
            // Toast(`企业微信JSAPI配置失败：${res}`)
          });
        }else{
          // 提示报错以后关闭页面
          store.commit("setFullLoading",false) // 隐藏loading
          Toast(JSON.stringify(res))
        }
      }).catch(error=>{
        // 提示报错以后关闭页面
        store.commit("setFullLoading",false) // 隐藏loading
        Toast(JSON.stringify(error))
      })
    
  },
  render: h => h(App)
}).$mount('#app')